Telegram Group »
Saudi Arabia »
Библиотека джависта | Java Spring Maven Hibernate » Telegram Webview
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Загадка для разработчиков
Что за паттерн загадан на картинке? Пишите в комменты ответ под спойлером.
💬 Рассказывайте интересные кейсы реализации из практики
🐸 Библиотека джависта #междусобойчик
Что за паттерн загадан на картинке? Пишите в комменты ответ под спойлером.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Spring-потрошитель
Автор делится опытом анализа и оптимизации Spring-приложений, выявляя скрытые зависимости и избыточные компоненты.
Рассматриваются методы обнаружения неиспользуемых бинов, циклических зависимостей и других архитектурных дефектов, влияющих на производительность и поддерживаемость кода.
🔹 Тестирование CAP-теоремы на примере MongoDB
Автор проводит серию тестов с различными параметрами writeConcern и readConcern, анализируя их влияние на согласованность и доступность данных.
Рассматриваются реальные сценарии, включая сбои и аварийные ситуации, с целью выявления оптимальных настроек для обеспечения требуемых свойств системы.
🔹 Clean your Memory: From Finalize to Cleaner
Рассматриваются проблемы, связанные с finalize(), такие как непредсказуемость вызова и возможные утечки памяти.
Введение в Cleaner предоставляет более гибкий и эффективный механизм для освобождения ресурсов, улучшая производительность и стабильность приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Как улучшить код? Отвечайте на опрос и добавляйте варианты в комментарии.
Forwarded from Библиотека задач по Java | тесты, код, задания
Как можно улучшить архитектуру этого сервиса?
Anonymous Quiz
7%
Перенести метод calculateTotal в контроллер
10%
Объединить OrderRepository и EmailService в один фасад
48%
Вынести отправку email в доменное событие (OrderCreatedEvent)
20%
Использовать @Transactional в методе calculateTotal
15%
Добавить логирование
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Google Docs
Конкурс на самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…
Java Developer — 250 000 — 450 000 ₽ — гибрид (Москва, Санкт-Петербург, Екатеринбург, Нижний Новгород, Казань, Новосибирск, Симферополь, Минск)
Java-разработчик (стажер/intern) — до 60 000 ₽ — гибрид (Екатеринбург)
Разработчик на Java (Кинопоиск) — 300 000 — 370 000 ₽ — гибрид (Москва, Санкт-Петербург)
Java Developer — до 500 000 ₽ — гибрид (Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Инструмент недели: Apache Sling
Apache Sling — это фреймворк для создания контент-ориентированных приложений на Java. Он использует RESTful архитектуру, в которой URL-адреса напрямую соответствуют структуре контента в репозитории, что позволяет создавать гибкие и масштабируемые веб-приложения.
Фичи: интеграция с репозиториями JCR, поддержка различных языков шаблонов и скриптов, динамическая загрузка компонентов с помощью OSGi, модульность и масштабируемость. Apache Sling идеально подходит для разработки приложений, ориентированных на управление контентом.
🔗 Apache Sling на GitHub
🐸 Библиотека джависта #буст
Apache Sling — это фреймворк для создания контент-ориентированных приложений на Java. Он использует RESTful архитектуру, в которой URL-адреса напрямую соответствуют структуре контента в репозитории, что позволяет создавать гибкие и масштабируемые веб-приложения.
Фичи: интеграция с репозиториями JCR, поддержка различных языков шаблонов и скриптов, динамическая загрузка компонентов с помощью OSGi, модульность и масштабируемость. Apache Sling идеально подходит для разработки приложений, ориентированных на управление контентом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧘♂️ Скучная работа в IT: путь к счастью или упущенные возможности?
В мире IT царит культ престижных компаний — FAANG, стартапов, хайпа. Но что, если настоящая гармония скрыта в «скучной» работе с мягкими дедлайнами, стабильным графиком и отсутствием стресса. Может ли спокойная работа в нетехнических компаниях быть ключом к удовлетворению и балансу между работой и личной жизнью?
🔹 Основные тезисы:
— Сотрудники «скучных» компаний отмечают спокойный темп работы, что позволяет уделять больше времени хобби и семье.
— Отсутствие переработок и гибкий график способствуют лучшему самочувствию и удовлетворенности жизнью.
— Хотя зарплаты могут быть ниже, стабильность и льготы компенсируют это.
💬 Стоит ли жертвовать карьерными амбициями ради спокойствия?
🔗 Подробнее в статье
🐸 Библиотека джависта #буст
В мире IT царит культ престижных компаний — FAANG, стартапов, хайпа. Но что, если настоящая гармония скрыта в «скучной» работе с мягкими дедлайнами, стабильным графиком и отсутствием стресса. Может ли спокойная работа в нетехнических компаниях быть ключом к удовлетворению и балансу между работой и личной жизнью?
🔹 Основные тезисы:
— Сотрудники «скучных» компаний отмечают спокойный темп работы, что позволяет уделять больше времени хобби и семье.
— Отсутствие переработок и гибкий график способствуют лучшему самочувствию и удовлетворенности жизнью.
— Хотя зарплаты могут быть ниже, стабильность и льготы компенсируют это.
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно быстро набросать сервис для бизнес-функции? AI поможет сэкономить часы на шаблонах, валидации и boilerplate.
📝 Промпт:
Generate a Spring Boot REST endpoint that handles [описание бизнес-логики]. Include request/response DTOs, validation, exception handling, and service-layer interaction. Use best practices and explain design decisions.
— Добавьте
Use Java 17+ features if possible
, чтобы сразу писать современно— Добавьте
Add unit tests for controller and service
, чтобы не откладывать на потом— Добавьте
Make it modular for future feature extension
, если планируется масштабированиеPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Как добавить кастомные метрики в Spring Boot Actuator
В проде важно не просто «чтобы работало», а знать, как работает. Spring Boot Actuator позволяет получать системную информацию, но по-настоящему полезным он становится с кастомными метриками.
1️⃣ Добавьте зависимости
Также добавьте экспорт метрик в application.yml:
2️⃣ Создайте кастомную метрику
Например, метрика количества обращений к сервису:
Теперь можно вызывать countRequest() в любом месте.
3️⃣ Интегрируйте в проект
Каждый вызов /hello увеличивает счётчик.
4️⃣ Проверьте метрику
Откройте в браузере или через curl:
Найдите строку:
📌 Реальный профит: такие метрики позволяют строить Grafana-дэшборды, ставить алерты в Prometheus и быстро ловить аномалии.
💬 Используете кастомные метрики или довольствуетесь встроенными?
🐸 Библиотека джависта #буст
В проде важно не просто «чтобы работало», а знать, как работает. Spring Boot Actuator позволяет получать системную информацию, но по-настоящему полезным он становится с кастомными метриками.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Также добавьте экспорт метрик в application.yml:
management:
endpoints:
web:
exposure:
include: health, info, metrics, prometheus
metrics:
export:
prometheus:
enabled: true
Например, метрика количества обращений к сервису:
@Component
public class CustomMetrics {
private final Counter requestCounter;
public CustomMetrics(MeterRegistry registry) {
this.requestCounter = Counter.builder("custom_requests_total")
.description("Total custom requests")
.register(registry);
}
public void countRequest() {
requestCounter.increment();
}
}
Теперь можно вызывать countRequest() в любом месте.
@RestController
@RequiredArgsConstructor
public class MetricsTestController {
private final CustomMetrics customMetrics;
@GetMapping("/hello")
public String hello() {
customMetrics.countRequest();
return "Hello!";
}
}
Каждый вызов /hello увеличивает счётчик.
Откройте в браузере или через curl:
http://localhost:8080/actuator/prometheus
Найдите строку:
custom_requests_total{...} 42.0
Please open Telegram to view this post
VIEW IN TELEGRAM
С выходом Java 21 в стабильный релиз sealed-типы наконец-то стали полноценным инструментом. Формально они позволяют явно ограничивать наследование, делают модель более предсказуемой и защищённой.
Казалось бы — бери и используй везде, особенно там, где важна неизменность и контроль, как в DDD, CQRS или API-слоях.
Но в реальности мнения расходятся. Одни начинают всё новое писать через sealed, чтобы убрать "лишнюю гибкость", другие придерживаются старого доброго interface + impl, ссылаясь на читаемость, тестируемость и простоту изменений.
Sealed — это реальный шаг вперёд в проработке модели, или ненужный контроль там, где раньше всё было гибко и понятно?
Please open Telegram to view this post
VIEW IN TELEGRAM
Знаете, как в Java обычно обновить одно поле в неизменяемом объекте? Нужно создавать копию с нужным значением. Муторно. Lombok умеет делать это элегантно.
🔹 Что делает @With
Генерирует методы withX(...), которые создают копию объекта с изменённым полем. Подходит для immutable-моделей и паттерна builder. Класс при этом должен быть final (например, через @Value или вручную).
🔹 Пример
@Value
@With
public class User {
String name;
int age;
}
Теперь можно:
User user1 = new User("Alice", 25);
User user2 = user1.withAge(30); // создаётся новый объект с новым age
Объекты остаются неизменяемыми, но при этом легко "обновляемыми".
🔹 Зачем это нужно
— Удобно при работе с immutable-классами.
— Простой способ "копировать с изменением".
— Чистый, декларативный стиль без boilerplate.
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 HTTP/2: эволюция веб-протокола
Если вы работаете с REST API, микросервисами или веб-приложениями на Spring Boot, понимание HTTP/2 — не просто полезно, а необходимо.
В отличие от HTTP/1.1, где каждое TCP-соединение обрабатывает только один запрос одновременно, HTTP/2 позволяет осуществлять параллельную передачу нескольких запросов и ответов по одному соединению.
Это означает:
— Экономия ресурсов сервера и клиента.
— Одновременная передача нескольких потоков данных.
— Уменьшение объема передаваемой информации.
🔗 Подробнее в статье
🐸 Библиотека джависта #буст
Если вы работаете с REST API, микросервисами или веб-приложениями на Spring Boot, понимание HTTP/2 — не просто полезно, а необходимо.
В отличие от HTTP/1.1, где каждое TCP-соединение обрабатывает только один запрос одновременно, HTTP/2 позволяет осуществлять параллельную передачу нескольких запросов и ответов по одному соединению.
Это означает:
— Экономия ресурсов сервера и клиента.
— Одновременная передача нескольких потоков данных.
— Уменьшение объема передаваемой информации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Как избавиться от Flaky-тестов с помощью JMina
Рассматривается использование библиотеки JMina для стабилизации нестабильных тестов. Автор делится практиками выявления и устранения причин нестабильности, улучшая надежность тестового покрытия.
🔹 Как ZGC аллоцирует память в хипе
Анализируется поведение сборщика мусора ZGC при выделении памяти. Обсуждаются особенности работы ZGC, его преимущества и потенциальные подводные камни при использовании в различных сценариях.
🔹 Паттерны и методологии разработки
Подборка материалов, посвященных современным паттернам проектирования и методологиям разработки. Рассматриваются лучшие практики, помогающие создавать устойчивые и масштабируемые приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Какой признак характерен для архитектуры CQRS?
Anonymous Quiz
74%
Разделение команд (изменений) и запросов (чтения)
10%
Использование одного сервиса для чтения и записи
5%
Обязательное хранение в SQL
6%
Отказ от асинхронных коммуникаций
6%
Хранение бизнес-логики на клиенте
Разработчик бэкенда (BDUI-платформа) — 220 000 — 480 000 ₽ — гибрид (Москва)
Java-разработчик — от 100 000 до 200 000 ₽ — удалёнка
Java Developer — от 300 000 ₽ — удалёнка
Senior Java Developer — от 4 500 до 6 000 € — гибрид (Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM